Lorentzian Classification Strategy Based in the model of Machine learning: Lorentzian Classification by @jdehorty, you will be able to get into trending moves and get interesting entries in the market with this strategy. I also put some new features for better backtesting results!
Backtesting context: 2022-07-19 to 2023-04-14 of US500 1H by PEPPERSTONE. Commissions: 0.03% for each entry, 0.03% for each exit. Risk per trade: 2.5% of the total account
For this strategy, 3 indicators are used:
Machine learning: Lorentzian Classification by @jdehorty
One Ema of 200 periods for identifying the trend
Supertrend indicator as a filter for some exits
Atr stop loss from Gatherio
Trade conditions:
For longs:
Close price is above 200 Ema
Lorentzian Classification indicates a buying signal
This gives us our long signal. Stop loss will be determined by atr stop loss (white point), break even(blue point) by a risk/reward ratio of 1:1 and take profit of 3:1 where half position will be closed. This will be showed as buy.
The other half will be closed when the model indicates a selling signal or Supertrend indicator gives a bearish signal. This will be showed as cl buy.
For shorts:
Close price is under 200 Ema
Lorentzian Classification indicates a selling signal
This gives us our short signal. Stop loss will be determined by atr stop loss (white point), break even(blue point) by a risk/reward ratio of 1:1 and take profit of 3:1 where half position will be closed. This will be showed as sell.
The other half will be closed when the model indicates a buying signal or Supertrend indicator gives a bullish signal. This will be showed as cl sell.
Risk management
To calculate the amount of the position you will use just a small percent of your initial capital for the strategy and you will use the atr stop loss or last swing for this.
Example: You have 1000 usd and you just want to risk 2,5% of your account, there is a buy signal at price of 4,000 usd. The stop loss price from atr stop loss or last swing is 3,900. You calculate the distance in percent between 4,000 and 3,900. In this case, that distance would be of 2.50%. Then, you calculate your position by this way: (initial or current capital * risk per trade of your account) / (stop loss distance).
Using these values on the formula: (1000*2,5%)/(2,5%) = 1000usd. It means, you have to use 1000 usd for risking 2.5% of your account.
We will use this risk management for applying compound interest.
> In settings, with position amount calculator, you can enter the amount in usd of your account and the amount in percentage for risking per trade of the account. You will see this value in green color in the upper left corner that shows the amount in usd to use for risking the specific percentage of your account.
> You can also choose a fixed amount, so you will have to activate fixed amount in risk management for trades and set the fixed amount for backtesting.
Script functions
Inside of settings, you will find some utilities for display atr stop loss, break evens, positions, signals, indicators, a table of some stats from backtesting, etc.
You will find the settings for risk management at the end of the script if you want to change something or trying new values for other assets for backtesting.
If you want to change the initial capital for backtest the strategy, go to properties, and also enter the commisions of your exchange and slippage for more realistic results.
In risk managment you can find an option called "Use leverage ?", activate this if you want to backtest using leverage, which means that in case of not having enough money for risking the % determined by you of your account using your initial capital, you will use leverage for using the enough amount for risking that % of your acount in a buy position. Otherwise, the amount will be limited by your initial/current capital
I also added a function for backtesting if you had added or withdrawn money frequently:
Adding money: You can choose how often you want to add money (Monthly, yearly, daily or weekly). Then a fixed amount of money and activate or deactivate this function
Withdraw money: You can choose if you want to withdraw a fixed amount or a percentage of earnings. Then you can choose a fixed amount of money, the period of time and activate or deactivate this function. Also, the percentage of earnings if you choosed this option.
Some other assets where strategy has worked
BTCUSD 4H, 1D
ETHUSD 4H, 1D
BNBUSD 4H
SPX 1D
BANKNIFTY 4H, 15 min
Some things to consider
USE UNDER YOUR OWN RISK. PAST RESULTS DO NOT REPRESENT THE FUTURE.
DEPENDING OF % ACCOUNT RISK PER TRADE, YOU COULD REQUIRE LEVERAGE FOR OPEN SOME POSITIONS, SO PLEASE, BE CAREFULL AND USE CORRECTLY THE RISK MANAGEMENT
Do not forget to change commissions and other parameters related with back testing results!. If you have problems loading the script reduce max bars back number in general settings
Strategies for trending markets use to have more looses than wins and it takes a long time to get profits, so do not forget to be patient and consistent !
Please, visit the post from @jdehorty called Machine Learning: Lorentzian Classification for a better understanding of his script!
Any support and boosts will be well received. If you have any question, do not doubt to ask!
Search in scripts for "the script"
I11L - Better Buy Low Volatility or High Volatility?This Pine Script code defines a TradingView strategy called "I11L - Better Buy Low Volatility or High Volatility?". The strategy aims to study the difference between buying when an asset's volatility is low and when it is high. It allows the user to select whether to buy during low or high volatility periods by changing the input variable mode.
Here's a brief explanation of the System:
The strategy is initialized with relevant settings such as overlay, pyramiding, default quantity type, initial capital, and others.
The mode input allows the user to choose between "Buy low Volatility" and "Buy high Volatility" options.
volatilityTargetRatio is the user-defined threshold to be used for making buy decisions. A value of 1 equals the average ATR (Average True Range) for the security. A lower value indicates lower volatility.
atrLength is the number of periods to calculate the ATR.
sellAfterNBarsLength sets the number of bars to hold the position before selling it.
The script calculates the ATR using the ta.atr() function, and then divides it by the closing price to normalize the value. It also calculates the simple moving average (SMA) of the normalized ATR over a period of 5 times the ATR length, and then computes the ratio between the normalized ATR and its average.
The script keeps track of the number of holding bars using the variable holdingBarsCounter. When there are open trades, the holding bars counter is incremented.
The decision to buy is made based on the selected mode and whether the computed ratio is above or below the user-defined threshold.
When the holding bars counter exceeds the user-defined limit, the position is closed.
The script plots the computed ratio with different colors based on the buy and close conditions. The ratio is plotted in green when a buy signal is triggered, red when a close signal is triggered, and white in all other cases. The value of 1 (the reference for the average ATR) is also plotted on the chart in white color.
This strategy helps traders study the difference between buying during low and high volatility periods and compare the performance of these conditions. It can be useful for analyzing the effectiveness of volatility-based trading strategies, such as entering positions when the market is calm or during periods of strong price movement.
Donchian Trend V1The Donchian Trend strategy is a trend-following approach that uses the Donchian Channels indicator to identify potential entry and exit points in a security. The Donchian Channels are formed by taking the highest high and the lowest low prices over a specified period and plotting them as upper and lower channels around the current price. The width of the channels indicates the level of volatility in the market.
In this strategy, the Donchian Channels are used as a trend filter to determine the direction of the market. When the price is above the upper channel, it suggests an uptrend, and when the price is below the lower channel, it indicates a downtrend. The length of the Donchian Channels is a key parameter in the strategy, as it determines the look-back period for identifying the high and low prices.
Additional Logic: To further refine the entry and exit signals, The script uses two moving averages, a fast one (MA5) and a slow one (MA45), to identify trends and generate trading signals. When the fast moving average crosses above the slow moving average, a buy signal is generated, indicating that the market is trending upwards. Conversely, when the fast moving average crosses below the slow moving average, a sell signal is generated, indicating that the market is trending downwards.
Evaluation: The script was backtested on historical price data for the pair. The backtest results showed that the script was able to generate a net profit of , with a profit factor of and a Sharpe ratio of . The script also includes metrics such as the number of winning and losing trades, the average trade, and the largest winning and losing trades.
The strategy is evaluated based on its net profit, gross profit, gross loss, max run-up, max drawdown, buy & hold return, Sharpe ratio, Sortino ratio, and profit factor. The parameters used in the backtest include a Donchian Channel length of 42, which corresponds to a weekly time with divide of 4h time frame, and a short-term MA of 5 and a long-term MA of 45 for more accurate entry and exit signals.
Disclaimer: This script is for educational and research purposes only and should not be used for trading with real money without further testing and validation. Past performance is not indicative of future results.
Quarterly Returns in Strategies vs Buy & HoldThis is a Quarterly Returns version of Monthly Returns in PineScript Strategies by QuantNomad
This script shows a table of Quarterly/Yearly performance of your strategy.
It also provides an option to compare with Buy & Hold.
The script can easily integrated to your strategy. All you need to do is copy the table part and paste it at the end of your script
Disclaimer
Please remember that past performance may not be indicative of future results.
This post and the script don’t provide any financial advice.
Band-Zigzag - TrendFollower Strategy [Trendoscope]Strategy Time!!!
Have built this on my earlier published indicator Band-Zigzag-Trend-Follower . This is just one possible implementation of strategy on Band-Based-Zigzag .
🎲 Notes
Experimental prototype. Not financial advise and strategy not guaranteed to make money despite backtest results
Not created or tested for any specific instrument or timeframe
Test and adopt with own risk
🎲 Strategy
This is trend following strategy built based on Bands and Zigzag. Traits of trend following strategies are
Lower win rate (Yes, thats right)
High risk reward (Compensates low win rate)
Higher drawdown
If market is choppy, trend following methods suffer.
The script implements few points to overcome the negatives such as lower win rate and higher drawdown by actively assessing pivots on the direction of trend along. This helps us take regular profits and exit on time during the end of trend. Most of the other concepts are defined and explained in indicator - Band-Zigzag-Trend-Follower and Band-Based-Zigzag
Defining a trend following method is simple. Basic rule of trend following is Buy High and Sell Low (Yes, you heard it right). To explain further - methodology involve finding an established trend which is flying high and join the trend with proper risk and optimal stop. Once you get into the trade, you will not exit unless there is change in the trend. Or in other words, the parameters which you used to define trend has reversed and the trend is not valid anymore.
🎯 Using bands
When price breaks out of upper bands (example, Bollinger Band , Keltener Channel, or Donchian Channel), with a pre determined length and multiplier, we can consider the trend to be bullish and similarly when price breaks down the lower band, we can consider the trend to be bearish .
🎯 Using Pivots
Simple logic using zigzag or pivot points is that when price starts making higher highs and higher lows, we can consider this as uptrend. And when price starts making lower highs and lower lows, we can consider this as downtrend. There are few supertrend implementations I have published in the past based on zigzags and pivot points .
Drawbacks of both of these methods is that there will be too many fluctuations in both cases unless we increase the reference length. And if we increase the reference length, we will have higher drawdown.
🎯 Band Based Zigzag Method
Here we use bands to define our pivot high and pivot low - this makes sure that we are identifying trend only on breakouts as pivots are only formed on breakouts
Our method also includes pivot ratio to cross over 1.0 to be able to consider it as trend. This means, we are waiting for price also to make new high high or lower low before making the decision on trend. But, this helps us ignore smaller pivot movements due to the usage of bands.
I have also implemented few tricks such as sticky bands (Bands will not contract unless there is breakout) and Adaptive Bands (Band will not expand unless price is moving in the direction of band). This makes the trend following method very robust.
To avoid fakeouts, we also use percentB of high/low in comparison with price retracement to define breakout.
🎲 Settings
Settings are fairly simpler and are explained as below. You will find most of the required information in tooltips.
[XRP][1h] Chanu Delta inspired — Breakeven StrategyHello, this is my first TV contribution. I usually don't publish anything but the script is a quick review of an other contributor (Chanu Delta V3 script )
I reverse engineered this indicator today as I wanted to test it on other contracts. The original version (which aims to be traded on BTC) has been ported to XRP (as btc and xrp prices are narrowly correlated) then modified with a couple of what I believe are improvements:
- No backtest bias even with `security` function.
- Extra backtest bias validation, always trading on next bar as Crossover/under bias is confirmed
- Backtest with 2 ajustable TP, ajustable equity and breakeven option
- The current version is not design to use pyramiding as it would require extra logic to monitor the lifecycle of the position in the context of a study.
- Commented alerts examples with variables available in script scope so you can use them in alerts (just replace strategy with indicator and remove backtest related code block).
- Trade filling assumption set to 10, fees to 0.02 as the are default bybit maker fees and I advice to enter with trailing orders using a max of 2 ticks as offset to lower fees rather than a market order!
- Backtest and Alerts happen on barclose.
- No repaint guaranteed.
There are a thousand ways to improve it (adx/bb based dynamic TP/SL, order lifecycle, pyramiding...) but it seems to be a cool starting point.
Don't forget to have fun!
BT-SAR Ema, Squeeze, Volatility
Esse script foi criado para estudo de Backtest.
Ele usa o SAR PARABÓLICO como indicador de sinal de entrada, você também pode combinar 3 indicadores para filtrar as entradas: Média Móvel, Squeeze Momentum e Volatility Oscilator .
Existe duas entradas, quando o SAR Parabólico vira ou pelo Breakout (usando o último preço) do SAR Parabólico antes dele virar.
As Os filtros podem ser usados de forma combinada ou individual.
O Script também pode ser usado com algum serviço de bot como 3commas.io, basta colocar as mensagens de entrada e saída para o bot.
This script was created for Backtest study.
It uses PARABOLIC SAR as input signal indicator, you can also combine 3 indicators to filter inputs: Moving Average, Squeeze Momentum and Volatility Oscillator .
There are two entries, when the Parabolic SAR turns or by Breakout (using the last price) of the Parabolic SAR before it turns.
The Filters can be used in combination or individually.
The Script can also be used with some bot service like 3commas.io, just put the input and output messages to the bot.
3Commas Dollar cost averaging trading system (DCA)As investors, we often face the dilemma of willing high stock prices when we sell, but not when we buy. There are times when this dilemma causes investors to wait for a dip in prices, thereby potentially missing out on a continual rise. This is how investors get lured away from the markets and become tangled in the slippery slope of market timing, which is not advisable to a long-term investment strategy.
Skyrex developed a complex trading system based on dollar-cost averaging in Quick Fingers Luc's interpretation. It is a combinations of strategies which allows to systematically accumulate assets by investing scaled amounts of money at defined market cycle global support levels. Dollar-cost averaging can reduce the overall impact of price volatility and lower the average cost per asset thus even during market slumps only a small bounce is required to reach take profit.
The strategy script monitors a chart price action and identifies bases as they form. When bases are reached the script provides entry actions. During price action development an asset value can go lower and in this way the script will perform safety entries at each subsequent accumulation levels. When weighted average entry price reaches target profit the script will perform a take profit action.
Bases are identified as pivot lows in a fractal pattern and validated by an adjustable decrease/rise percentage to ensure significancy of identified bases. To qualify a pivot low, the indicator will perform the following validation:
Validate the price rate of change on drops and bounces is above a given threshold amount.
Validate the volume at the low pivot point is above the volume moving average (using a given length).
Validate the volume amount is a given factor of magnitude above is above the volume moving average.
Validate the potential new base is not too close to the previous range by using a given price percent difference threshold amount.
A fractal pattern is a recurring pattern on a price chart that can predict reversals among larger, more chaotic price movements.
These basic fractals are composed of five or more bars. The rules for identifying fractals are as follows:
A bearish turning point occurs when there is a pattern with the highest high in the middle and two lower highs on each side.
A bullish turning point occurs when there is a pattern with the lowest low in the middle and two higher lows on each side.
Basic dollar-cost averaging approach is enhances by implementation of adjustable accumulation levels in order to provide opportunity of setting them at defined global support levels and Martingale volume coefficient to increase averaging effect. According to Quick Fingers Luc's principles trading principles we added volume validation of a base because it allows to confirm that the market is resistant to further price decrease.
The strategy supports traditional and cryptocurrency spot, futures , options and marginal trading exchanges. It works accurately with BTC, USD, USDT, ETH and BNB quote currencies. Best to use with 1H timeframe charts and limit orders. The strategy can be and should be configured for each particular asset according to its global support and resistance levels and price action cycles. You can modify levels and risk management settings to receive better performance
The difference between core script and this interpretation is that this strategy is specially designed for 3Commas bots
How to use?
1. Apply strategy to a trading pair your are interested in using 1H timeframe chart
2. Configure the strategy: change layer values, order size multiple and take profit/stop loss values according to current market cycle stage
3. Set up a TradingView alert to trigger when strategy conditions are met
4. Strategy will send alerts when to enter and when to exit positions which can be applied to your portfolio using external trading platforms
5. Update settings once market conditions are changed using backtests on a monthly period
Trend trader + STC [CHFIF] - CV This script is my first strategy script coupling the Trend trader (indicator developed by Andrew Abraham in the Trading the Trend article of TASC September 1998.) and Schaff Trend Cycle . The STC indicator is widely used to identify trends and their directions. It is sometimes used by traders to predict trend reversals as well. Based on the movement of the Schaff Trend Cycle , buy or sell signals are generated, which are then used by traders to initiate either long or short positions.
Around I built a user interface to help you in creating a customized strategy to your need.
My idea behind doing this was to make customizable parameters and back testing easier than manually with a lot of flexibility and options. More possibility we have, more solutions we find right? So I started this script few weeks ago to be my first script (second in reality, but first to be published.)
Strategy it self is made out of 2 simple step:
1→ STC gives a Buy/Sell signal.
2→Price is closing above the TT (Buy) or below (Sell) and the signal is the same as given by the STC .
To complete your strategy in order to reach the best result, I added few options:
→ Money management: Define the type of risk you want to take (entry risk will always risk the same percentage of your portfolio disregarding the size of the SL, Fix amount of money, fix amount of the capital (portfolio). NOTE: Margin is not coded yet, target is to show liquidation price. Please keep an eye on the releases to know when it is released.
→ Stop loss and Take profit management: Define the type of target you want to use (ATR, fixed percentage, pivots points) and even customise different take profit level or activate the trailing. Each type of target is customizable via the menu
→ Moving average: You can also complete the strategy using different moving average. To draw it tick the box on the left, to use it in the calculation of the result, tick the box "Price>MA" in front of the needed EMA . You can select different type of MA ( SMA , EMA , DEMA , TEMA , RMA, HMA , WMA , VWAP , VWMA , etc...)
→ RSI: 4 possible approach to use the RSI to complement the strategy:
• OB/OS => short position will be taken only if RSI goes under the lower limit. Long if the RSI goes above the limit. Ticking confirmation will wait to cross back the limit to validate the condition
• Rev OB/OS => Short will be taken if RSI is below lower limit and stays below. Long will be taken if RSI is above upper limit and stays above.
• MA dominance => RSI has to be above MA for long, below for short. Confirmation box ticked requires 2 bars with the RSI on a side to validate signal.
• MA Dominance + limit => It is a combination of the requirement of the provious option and also Rev. OB/OS
→ Volume confirmation => This will consider the volume MA for entry confirmation. The volume will have to be above the MA define by the value entered in the field.
→ Waddah Attar explosion indicator can also be used as a filter for entries in this way:
• Explosion line > dead zone to validate entries
• Trend > dead zone to validate entry
• Both > dead zone is a compound of both rules above to get entry confirmation
→ ADX can also be used as a filter. I added 2 Threshold in order to have a minimum level of acceptance for valid entry but also a maximum level.
When your strategy is setup, you can setup alerts and I would recommend to setup the date range before doing the alerts. Why? Simply because the script do not cover pyramiding and will give a signal only if a trade is not ongoing.
In setting up the sessions at which you would want to trade, no signal within those range can be missed. You can setup 2 sessions, the days and also the global range of backtesting.
Cipher B divergencies for Crypto (Finandy support)Hello Traders!
In times of high volatility, it is important to follow a market-neutral strategy to protect your hard-earned assets. The simple script employs common buy/sell and/or divergencies signals from the VuManChu Cipher B indicator with fixed stop losses and takes profits. The signals are filtered by a local trend of a coin of interest and the global trend of Bitcoin. These trends-filtered signals demonstrated better performance on most of the back- and forward- tests for USDT cryptocurrency futures. The strategy is based on my real experience, it's a diamond I want to share with you.
In terms of visualization if the background is red and the price is below the yellow line then only a short position can be opened. Conversely, if the price is above the yellow line AND the background is green only a long position can be opened.
Inputs from VuManChu you can find on the top. Frankly, I do not know how they can help you to improve the performance of the strategy. My inputs of the script you can find in "Trend Settings" and "TP/SL Settings" at the bottom.
The checkbox "Only divergencies" lets to broadcast only more reliable buy/sell signals for a cost of rare deals.
The checkbox "Cancel all positions if price crosses local sma?" makes additional trailing stop loss. Usually, this function increases the win rate by "smoothing" the risk/reward ratio, as a usual stop loss does.
You can tune SL/TP based on backtesting.
To connect the script to Finandy just edit "name" and "secret" to connect your webhook (see the bottom of the script).
The rule of thumb for the strategy is "only divergencies" - ON, high reward/risk (TP/SL) ratio, 5 min timeframe on chart help with performance.
Finally, I am looking forward to feedback from you. If you have some cool features for my script in your mind, do not hesitate to leave them in the comments.
Good luck!
Traling.SL.TargetTrailing SL and Target
I have seen few requests in PineScripters telegram group asking questions about implementation of trailing stop-loss (SL) and targets. This script is one of the way to implement the same.
This script is developed based on dark color theme and is best viewed using dark color theme.
How and where can this script be used:
The script is built to demonstrate how one can implement the trailing SL and target, so by referring the script one can mimic the approach and add trailing SL and target implementation in their own strategy.
How it works:
To demonstrate the SL and target implementation, i have considered simple EMA crossover strategy.
Key Input Parameters
Method to use for SL/Target trailing:
1. % Based Target and SL - Used to calculate trailing based on parameters defined under group '% Based Target SL'
2. Fixed point Based Target and SL - Used to calculate trailing based on parameters defined under group 'Fixed point Based Target and SL'
% Based Target and SL:
Initial profit % - This is used to calculate target when trade is initiated
Initial SL % - This is used to calculate SL when trade is initiated
Initiate trailing % - This parameter determines, when to start trailing SL and target.
Trail profit by % - Target would be trailed by % specified as this parameter
Trail SL by % - SL would be trailed by % specified as this parameter
e.g.
Trade type: - Long
Trade price: 10000
initial profit %: 1
Initial SL %: 1
Initiate trailing %: 0.5
Trail profit by %: 0.3
Trail SL by %: 0.4
Calculations based on above:
initial profit %: 10100 (trade price + 1%)
Initial SL %: 9900 (trade price - 1%)
Initiate trailing %: 10049.5 (initial profit - 0.5%)
Trail profit by %: 10130 (initial profit + 0.3%)
Trail SL by %: 9939.6 (initial SL + 0.4%)
For next iteration of Trailing SL and target above calculated values will be taken as a base and next set of values will be calculated. these calculations will continue till the trade is exited either on price reaching profit or SL point.
Fixed point Based Target and SL:
Initial profit target points - To derive initial target, parameter value is added to trade price in case of long trade.
Initial SL points - To derive SL point, parameter value is subtracted from trade price
Initiate trailing points - To derive start of trailing logic, parameter value is subtracted from initial profit point.
Trail profit by points - In case of long trade, parameter value is added to the profit target to derive new trailed profit target.
Trail SL by % - In case of long trade, parameter value is added to the SL initial point to derive new trailed SL.
Calculation of Trailing SL and target will continue till the trade is exited either on price reaching profit or SL point.
Plots displayed on the chart:
Apart from default trade markings i have added 3 shapes on the chart to describe working of Trailing SL and targets.
Diamond shape marks - These are added on the chart when trade is initiated. These shapes gives additional trade information by way of 'tooltip'. This information can be viewed by placing mouse pointer on the shape.
Circle shape marks - These are added on the chart whenever Trailing SL and targets are calculated. These shapes gives additional trade information by way of 'tooltip'. This information can be viewed by placing mouse pointer on the shape. You will also notice a number displayed just above or below circle denoting Trailing iteration.
Labels up and label down shapes - These are dynamically placed on the chart whenever trade is in progress. These labels will display ongoing trades, Target and SL points.
EHMA Range StrategyThis script is a modified version of @borserman's script for the Exponential Hull Moving Average
All credit for the EHMA goes to him :)
In addition to the EHMA, this script works with a range around the EHMA (which can be modified), in an attempt to be robust against fake signals. Many times a bar will close below a moving average, only to reverse again the next bar, which eats away at your profits. Especially on shorter timeframes, but also on choppy longer timeframes this can make a strategy unattractive to use.
With the range around the EHMA, the strategy only enters a long/exit-short position if a bar crosses above the upper range. Vice versa, it only enters a short/exit-long position if a bar crosses below the lower range. This avoids positions if bars behave choppy within the EHMA range & only enters a position if the market is confident in it's direction. Having said that, fakeouts are still possible, but a lot less frequent. Having backtested this strategy vs the regular EHMA strategy (and having experimented with various settings), this version seems to be a lot more robust & profitable!
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Heikin Ashi EMA v5 no repaint This script was inspired by the "Heikin/Kaufman Strategy" from marco valente built on v2.
The script was rebuilt on the v5 and most importantly removed the repaint function that was driving surrealistic backtesting inflated numbers.
This script is now fully functional and not repainting - At the time of testing worked efficiently 90% WR and 2x profit factor on CFD WTI OIL with a 15m time frame indexed on forex.com price.
You should utilize this script with caution, especially on high volatility cycles you can try plotting against a volatility relative index or stop.
I also strongly recommend understanding the fundamentals of WTI OIL to balance the indications of the strategy with fundamentals.
Thanks to Clovis Warlop and Nilesh Sharma for their contribution.
Cheers,
Gustavo Bramao
[cache_that_pass] 1m 15m Function - Weighted Standard DeviationTradingview Community,
As I progress through my journey, I have come to the realization that it is time to give back. This script isn't a life changer, but it has the building blocks for a motivated individual to optimize the parameters and have a production script ready to go.
Credit for the indicator is due to @rumpypumpydumpy
I adapted this indicator to a strategy for crypto markets. 15 minute time frame has worked best for me.
It is a standard deviation script that has 3 important user configured parameters. These 3 things are what the end user should tweak for optimum returns. They are....
1) Lookback Length - I have had luck with it set to 20, but any value from 1-1000 it will accept.
2) stopPer - Stop Loss percentage of each trade
3) takePer - Take Profit percentage of each trade
2 and 3 above are where you will see significant changes in returns by altering them and trying different percentages. An experienced pinescript programmer can take this and build on it even more. If you do, I ask that you please share the script with the community in an open-source fashion.
It also already accounts for the commission percentage of 0.075% that Binance.US uses for people who pay fees with BNB.
How it works...
It calculates a weighted standard deviation of the price for the lookback period set (so 20 candles is default). It recalculates each time a new candle is printed. It trades when price lows crossunder the bottom of that deviation channel, and sells when price highs crossover the top of that deviation channel. It works best in mid to long term sideways channels / Wyckoff accumulation periods.
Argo IV - EXPERIMENTAL strategy for 3commas with alertsThis strategy lets users create BUY/SELL alerts for 3commas single bots in a simple way, based on a built in set of indicators that can be tweaked to work together or separately through the study settings. Indicators include Bollinger Bands , Williams %R , RSI , EMA , SMA , Market Cipher, Inverse Fisher Transform, RSI divergence.
It is based on the ARGO I study ( here ), with the following major differences:
- It uses pyramiding (see strategy "properties")
- It includes a lot of new options for deal start/close conditions for maximum control
- It doesn't require any external tool to backtest.
If the user choses to create both BUY and SELL signals from the study settings, the alert created will send both BUY and SELL signals for the selected pair. Note the script will only send alerts for the pair selected in the study settings, not for the current chart (if different).
Important : it is only an early experiment, I will only release the script when satisfied with performance. Until then, I advise not to use this for any real trading.
How to use:
- Add the script to the current chart
- Open the strategy settings , insert bot details. Pairs MUST be in capital letters or 3commas will not recognize them.
- Still in the settings, tweak the deal start/close conditions from various indicators until happy. The strategy will plot the entry / exit points on the chart
- When happy, right click on the "..." next to the study name, then "Add alert'".
- Under "Condition", on the second line, chose "Any alert () function call". Add the webhook from 3commas, give it a name, and "create".
DCA Bot Long/Short Thanks to @TheTradingParrot for the inspiration and knowledge shared.
Thanks to @ericlin0122 for the original DCA Bot Emulator which is the backbone of this strategy.
The script simulates DCA strategy with parameters used in 3commas DCA bots for futures trading. Experiment with parameters
to find your trading setup.
Beware how large your total leveraged position is and how far can market go before you get liquidated!
Do that with the help of futures liquidation calculators you can find online!
I`ve added:
1) an internal average price and profit calculating, instead of TV`s native one, which is subject to severe slippage.
2) I`ve built a graphic interface, so levels are clearly visible and back-test analyzing made easier.
3) now both Long & Short direction of the strategy exist.
4) trailing TP which was featured in the initial script has been removed because TV`s execution model makes
it impossible to know how the real world trailing would have unfolded.
5) the table is self explanatory, and it is there to help you discover what happened and where.
6) vertical colored lines appear when the new maximum deviation from the original price has
been reached
All the trading happens with total account capital, and all order sizes inputs are expressed in percent.
Known issues:
When deviation is small, and the same candle triggers safety AND the close order, the initial orders are closed, but a
new one opens on the next candle. This is "resolved" by closing the unwanted trade forcefully on the next candle, affecting
profit calculating minimally and guaranteeing that what should be closed has been closed.
The code could be improved through use of arrays, making the table flexible so the number of rows should be dynamic depending
on the number of SOs.
!!!!! IMPORTANT!!!!!
This strategy script is made to receive a signal from an exterior study script, which should plot +100 for long or -100 for short
entry (that is by default - values can be changed in the strategy settings menu). That plot should be found in "Enter Trigger" input
dropdown menu at the bottom of strategy settings menu. Removing the "and trigger == long/short_trigger" condition from strategy entry
conditions makes the strategy open trades ASAP.
Cheers!
CRYPTO TRADING BOT - 1min SCALPING LONG/SHORTHOW IT WORKS
The core concept behind the script is the determination of the current market mood in sense of creating a trendline indicator using EMA / SMA .
By using this trend indication alongside RSI / MACD value range, we are able to enter/exit the market in both directions: LONG and SHORT .
In case of confirmed false signals, we try to catch up the next good opportunity to minimise loss and to close the current trade.
If the chance for a good countertrade is given at this point, the market is going to be entered reversely.
Should the market move incredibly fast against our trade direction, we use proven Stop-loss targets, to bring our children into safety.
As many others, we could tell you now, that we used state-of-the-art machine learning algorithms
as well as highly sophisticated methods to gain our results.
As a fact, we started with an idea, using simple and common trading tools/indicators,
as a solid ground. We did not want to reinvent the wheel and it paid off.
GET A WORKING SCRIPT
The algorithm we are using has initially been created with a self-developed backtesting software.
To be able to deliver gas to our engine, we have bought a huge amount of OHLCV data for the 1min chart.
After many exhausting and frustrating weeks of our workflow-rotation (develop, fail, fix, test, repeat)
we finally got confirmation for all of our conditions/expectations, so we translated our algorithm into pine-code.
THE RESULTS
Since we have been using our Pine-Strategy alongside our backtesting software , we checked all the results provided by TradingView
and our tool to be 100% sure every outcome, every entry and every exit is exactly the same.
We did this for several months and since 2021 June we have been using it with real Alerts, coped to our binance account.
Below, you will find how the performance for the previous months looked like (every trade was made with 100% of the capital, of course using proper stop loss and take profit):
September 2020: 15.18%
October 2020: 36.17%
November 2020: 15.12%
December 2020: 48.58%
January 2021: 150.10%
February 2021: 45.96%
March 2021: 46.48%
April 2021: 4.96%
May 2021: 43.48%
June 2021: -28.99%
Juli 2021: 15.63%
August 2021 (so far): 11.57%
Accumulated Profit: 1,979.01%
To prove our results, we will link an excel sheet for every trade that was made within this timerange.
Link: docs.google.com
ABOUT US
We are two good friends, both incredibly interested in mathematics, software engineering, AI and algorithmics. After getting introduced into the crypto space
by a common friend, we started figuring out that there is a pattern behind every big or small move which happens in an asset.
This is where the passion for creating a CRYPTO TRADING BOT began. It was our goal, to create this script for the 1min Timeframe, so the software can react quickly when a
big or small move is happening - this is why it is called a SCALPING SCRIPT .
We are incredibly proud of this script and would like to share it with this amazing community - just hit us up on TradingView!
DMI Swings (by Coinrule)The Directional Movement Index is a handy indicator that helps catch the direction in which the price of an asset is moving. It compares the prior highs and lows to draw three lines:
Positive directional line (+DI)
Negative directional line (-DI)
Average direction index (ADX)
DMI is simple to interpret. When +DI > - DI, it means the price is trending up. On the other hand, when -DI > +DI, the trend is weak or moving on the downside.
The ADX does not give an indication about the direction but about the strength of the trend.
Typically values of ADX above 25 mean that the trend is steeply moving up or down, based on the -DI and +D positioning. This script aims to capture swings in the DMI, and thus, in the trend of the asset, using a contrarian approach.
ENTRY
-DI is greater than +DI
ADX is greater than 45
EXIT
+DI is greater than -DI
ADX is greater than 45
Trading on high values of ADX, the strategy tries to spot extremely oversold and overbought conditions. Values of ADX above 45 may suggest that the trend has overextended and is may be about to reverse.
Our backtests suggest that this script performs well for very short-term scalping strategies on low time frames, such as the 1-minute.
The script considers a 0.1% trading fee to make results more realistic to those you can expect from live market conditions. So realistically, live results should be similar to backtested results.
You can plug this script directly into your crypto exchange using TradingView Signals on Coinrule.
Trade Safely!
Zendog V2 backtest DCA bot 3commasHi everyone,
After a few iterations and additional implemented features this version of the Backtester is now open source.
The Strategy is a Backtester for 3commas DCA bots. The main usage scenario is to plugin your external indicator, and backtest it using different DCA settings.
Before using this script please make sure you read these explanations and make sure you understand how it works.
Features:
- Because of Tradingview limitations on how orders are grouped into Trades, this Strategy statistics are calculated by the script, so please ignore the Strategy Tester statistics completely
Statistics Table explained:
- Status: either all deals are closed or there is a deal still running, in which case additional info
is provided below, as when the deal started, current PnL, current SO
- Finished deals: Total number of closed deals both Winning and Losing.
A deal is comprised as the Base Order (BO) + all Safety Orders (SO) related to that deal, so this number
will be different than the Strategy Tester List of Trades
- Winning Deals: Deal ended in profit
- Losing deals: Deals ended with loss due to Stop Loss. In the future I might add a Deal Stop condition to
the script, so that will count towards this number as well.
- Total days ( Max / Avg days in Deal ):
Total Days in the Backtest given by either Tradingview limitation on the number of candles or by the
config of the script regarding "Limit Date Range".
Max Days spent in a deal + which period this happened.
Avg days spent in a deal.
- Required capital: This is the total capital required to run the Backtester and it is automatically calculated by
the script taking into consideration BO size, SO size, SO volume scale. This should be the same as 3commas.
This number overwrites strategy.initial_capital and is used to calculate Profit and other stats, so you don't need
to update strategy.initial_capital every time you change BO/SO settings
- Profit after commission
- Buy and Hold return: The PnL that could have been obtained by buying at the close of the first candle of the
backtester and selling at the last.
- Covered deviation: The % of price move from initial BO order covered by SO settings
- Max Deviation: Biggest market % price move vs BO price, in the other direction (for long
is down, for short it is up)
- Max Drawdown: Biggest market % price move vs Avg price of the whole Trade (BO + any SO), in the other
direction (for long price goes down, for short it goes up)
This is calculated for the whole Trade so it is different than List of Trades
- Max / Avg bars in deal
- Total volume / Commission calculated by the strategy. For correct commission please set Commission in the
Inputs Tab and you may ignore Properties Tab
- Close stats for deals: This is a list of how many Trades were closed at each step, including Stop Loss (if
configured), together with covered deviation for that step, the number of deals, and the percentage of this
number from all the deals
TODO: Might add deal avg value for each step
- Settings Table that can be enabled / disabled just to have an overview of your configs on the chart, this is a
drawn on bottom left
- Steps Table similar to 3commas, this is also drawn on bottom left, so please disable Settings table if you want
to see this one
TODO: Might add extra stats here
- Deal start condition: built in RSI-7 or plugin any external indicator and compare with any value the indicator plots
(main purpose of this strategy is to connect your own studies, so using external indicator is recommended)
- Base order and safety orders configs similar to 3commas (order size, percent deviation, safety orders,
percent scale and volume scale)
- Long and Short
- Stop Loss
- Support for Take profit from base order or from Total volume of the deal
- Configs help (besides self explanatory):
- Chart theme: Adjust according to the theme you run on. There is no way to detect theme at the moment.
This adjust different colors
- Deal Start Type: Either a builtin RSI7 or "External indicator"
- Indicator Source an value: If using External Indicator then select source, comparison and value.
For example you could start a deal when Volume is greater than xxxx, or code a custom indicator that plots
different values based on your conditions and test those values
- Visuals / Decimals for display: Adjust according to your symbol
- BO Entry Price for steps table: This is the BO start deal price used to calculate the steps in the table
CryptoKillerCryptoKiller is a trend following trading system. It provides entry and exit points, a money management system and a trade management system.
The entry points (fuchsia line) are determined by CryptoKiller Oscillator (see other published script to understand how the oscillator works).
The trade management system provides the exit points in profit and in loss. This script works with multiple take profits (green lines), the initial position is liquidated little by little as the trend reaches the profit targets. Trade management also provides trailing stop exits to save the remaining profits.
Stop loss (red line) take into account the recent past of the chart to be determined, while take profits are fixed and have been calculated based on historical volatility.
The money management system is very simple, it plans to enter a position with a fixed percentage with respect to equity.
CryptoKiller, during an operation, also draws supports and resistances on the chart - determined by the oscillator (orange lines) these supports and resistances are used as a filter to understand where there is the greatest probability of trend development (some entry points provided by the oscillator will therefore not be considered by CryptoKiller as entry points, as in disagreement with the traced supports / resistances).
We know that an error appears in the backtest calculation, where the script is said to suffer from a bias, so the backtest calculation may not be accurate. Actually this happens in high times like H4 or daily, but CryptoKiller is not designed for these timeframes. it is a short-term strategy.
For more information read the author's instructions to contact us, we will send a PDF file with a more complete explanation of the strategy accompanied by screenshots.
Access to this script is granted along with access to CryptoKiller Oscillator.
RSI Strategy w/ Trailing SL / TP Optimized for Crypto [Strategy]This strategy is designed to use the RSI and EMA filters. A 200 period EMA is used for short / long filters, and the 50 period EMA is used to determine the direction of the short term trend.
In addition, the script uses "rate of change" for the fast EMA (trend), volume , RSI (momentum), and price (volatility) and only takes trades when all are in optimal conditions.
I.E., the EMA is in an uptrend, the volume is increasing, price is in an uptrend, and the RSI is in an uptrend, so we will place a Long trade.
This strategy uses EMAs as a trailing stop loss and take profit. As this is a trend following strategy, the idea is to maximize profits when correct and minimize losses when
wrong.
It was designed specifically using crypto pairs, and was optimized for the 10 minute chart.
My goal was to get the best use out of the RSI indicator. I was originally an MACD fanboy, but have recently converted.
Want to help me improve this code or strategy? Have suggestions for improvement? Leave them in the comments below.
Thanks for using my script! I hope it works well for you and good luck in the markets.
If you have any questions, please leave them in the comments and I'll do my best to respond.
This script does not repaint as it only relies on close data to make a decision to enter a trade.
How to use this strategy:
___________________________
Enable Long Entries? - Used to enable or disable the strategy from executing long entries.
Enable Short Entries? - Used to enable or disable the strategy from executing short entries.
How Many Bars To Look Back for Hi/Lo: - This is used for the Stop Loss and Take Profit targets. An integer of bars is used to look back and calculate the values.
RSI Length (Rec: 8) - The length of the RSI
Source - The RSI Source
Use Slow EMA? - If checked, a 200 period EMA will be used to filter entries long or short (only take shorts when the price is below, long when above). In addition, the script will close any trades that cross the 200 period EMA. By default this is disabled.
EMA Slow - the period of the Slow EMA (200 by default)
EMA Slow Src - what to use to calculate the Slow EMA (high by default)
EMA Fast - The Fast EMA (50 period) is used to calculate the direction of the short term trend. This also factored into the Rates of Change.
EMA Fast Src - what to use to calculate the Fast EMA
ATR Length - If used, the ATR length is used to calculate the Stop Loss and Take Profit targets.
SL Multiplier - The distance away from the initial value to multiply the Stop Loss
TP Multiplier - The distance away from the initial value to multiply the Take Profit.
Use EMA as SL / TP? - If true (default) a 3 period EMA is used to calculate Stop Loss and Take Profit targets. Else, an ATR is used to calculate these values.
Stop Loss / Take Profit Offset - Default: 3 - this is used to shift the EMA / ATR Stop Loss and Take Profit lines to the right X bars. This is to ensure that they are hit properly and not exceeded.
Short Len Vol - Use to calculate the volume of the short length, used in rate of change calculations
Long Len - Use to calculate the volume of the long length, used in rate of change calculations
RSI Long Entry Val - Minimum RSI crossover value to enter a trade Long. If the RSI is below this value, trade entries are not valid.
RSI Long Cutoff Threshold - Long entry RSI value cutoff to no longer enter trades. If the RSI is above this value, trades entries are not valid.
RSI Short Entry Val - Minimum RSI crossover value to enter a trade Short. If the RSI is above this value, trade entries are not valid.
RSI Short Cutoff Threshold - Short entry RSI value cutoff to no longer enter trades. If the RSI is below this value, trades entries are not valid.
ROC Fast EMA - Calculates the rate of change between the Fast Ema now and 'X' bars ago. \n\n For a long entry, a positive value is needed, and for a short entry, a negative value is needed.
ROC Price - Calculates the rate of change between the most recent price close and 'X' bars ago. \n\n For a long entry, a positive value is needed, and for a short entry, a negative value is needed.
ROC RSI - Calculates the rate of change between the RSI now and 'X' bars ago. \n\n For a long entry, a positive value is needed, and for a short entry, a negative value is needed.
Use Close for SL - Default = Off - If checked, when a candle hits the stop loss, the trade will close on the next candle. If unchecked, the trade will remain open until the candle closes at or beyond the stop loss lines.
Custom Message Boxes - Primarily used for bots, but can be used to also insert your own messages for your trading alerts.
TTP Gavin's DCA BacktestPurpose:
The DCA Backtest script was designed to backtest the performance of any indicator using DCA bots.
"Open Deal ASAP" Deal Start Condition:
This script offers "open deal ASAP" deal start condition which will continuously open new deals. IT will wait for the current deal to close before opening a new one.
"Script" Deal Start Condition:
If you select the "Script" deal start condition we provide Bollinger Bands as an example. You can tweak the BB parameters from the indicator settings menu.
"Indicator" Deal Start Condition:
The third option is "Indicator". For this option to work you must have an indicator that plots a unique value that can be recognised as a BUY signal.
We recommend that your indicator plots 1 when it should buy and 0 when there's no signal.
Once you have in the same chart your indicator and your DCA backtest it's time to hook them up. For that follow these steps:
1) select "Indicator" as deal start condition
2) select your indicator from the list as "deal start source"
3) If you are following our recommendation then use 1 as "deal start value" so it can tell the DCA backtest when to open a deal. Make sure that your indicator only plots 0 or 1 so the DCA backtest can distinguish the BUY signal appropriately.
Limitations:
Each time you make changes and save your external indicator while you are backtesting, you will have to hook up the indicator again with the DCA backtest in the settings.
To avoid this, add as many parameters as you need to change in the external indicator so in that way you won't need to save changes to it and therefore will manage to avoid having to hook up the indicator with the DCA backtest.
Momentum - Strategy ScriptBased on the bult-in momentum script, I took the liberty of updating it, adding two features.
First, I would like to see the momentum oscillator showing percentage values, rather than absolute values. Visually facilitating analysis in long-term graphs.
Second, just for fun*.
I don't know how to explain the reason exactly, but for the strategy bult-in script, I didnt like the formula of "mom1" calculation.
So I changed it for a formula that made the most sense to me.
In any case, the original script remains in the code, optionally disabling the "percent" option and selecting the MOM1 option in the "MOM Choice" field, for the purpose of study and comparisons.
The script below is opened for study and any suggestions will be welcome.
I hope it can help the community.
It's just the beginning.
Study only purpose.
I tried to follow the code conventions found in the link below.
www.pinecoders.com






















